/* eslint-disable no-use-before-define */
import axios, { type Paging, type Response } from '@/utils/axios/axios';

/** 得到推广链接列表 */
export function getReferralRecordListAxios(data: GetReferralRecordListRequest): Promise<Response<Paging<ReferralRecord>>> {
  return axios.get(`/system/referralRecord/page`, { params: data }) as unknown as Promise<Response<Paging<ReferralRecord>>>;
}

export function baiduLiantiao(data: {
  referralLinkId:string;
  promotionUrl:string;
}): Promise<Response<Paging<ReferralRecord>>> {
  return axios.post(`/system/referralRecord/baiduTest`, data) as unknown as Promise<Response<Paging<ReferralRecord>>>;
}

/** 新增推广链接 */
export function addReferralRecordAxios(data: ReferralLink): Promise<Response<string>> {
  return axios.post(`/system/referralRecord/addReferralRecord`, data) as unknown as Promise<Response<string>>;
}

/** 修改推广链接 */
export function editReferralRecordAxios(data: ReferralLink): Promise<Response<string>> {
  return axios.post(`/system/referralRecord/updateReferralRecord`, data) as unknown as Promise<Response<string>>;
}

/** 得到短剧列表 */
export function getDramaListAxios(): Promise<Response<Drama[]>> {
  return axios.get(`/system/drama/getPullDownList`) as unknown as Promise<Response<Drama[]>>;
}

/**
 * 得到剧集列表
 * @param params - 参数
 * @param params.dramaId - 短剧 ID
 */
export function getEpisodeListAxios(params: { dramaId: number }): Promise<Response<Episode[]>> {
  return axios.get(`/system/dramaEpisode/getEpisodeList`, { params }) as unknown as Promise<Response<Episode[]>>;
}

/** 保存商品充值模板 */
export function saveProductTemplateAxios(data: SaveProductTemplateRequest): Promise<Response<Drama[]>> {
  return axios.post(`/system/referralRecord/saveProductTemplate`, data) as unknown as Promise<Response<Drama[]>>;
}

/** 得到链接的模版 */
export function gitLinkTemplateAxios(referralLinkId: number): Promise<Response<AllLinkTemplateInfo>> {
  return axios.get(`/system/referralRecord/getTemplateInfoByReferralLinkId`, { params: { referralLinkId } }) as unknown as Promise<
    Response<AllLinkTemplateInfo>
  >;
}

/** 得到链接 */
export function getReferralLinkUrl(referralLinkId: number): Promise<Response<ReferralLinkUrl[]>> {
  return axios.get(`/system/referralRecord/getReferralLinkUrl`, { params: { referralLinkId } }) as unknown as Promise<Response<ReferralLinkUrl[]>>;
}

/** 得到支付模板 */
export function getReferralTemplateListAxios(data: ReferralTemplateListRequest): Promise<Response<Paging<ReferralTemplate>>> {
  const _data: ReferralTemplateListRequest = JSON.parse(JSON.stringify(data));
  if (typeof data?.templateType !== 'number' || ![1, 2, 4].includes(data?.templateType)) {
    delete _data.templateType;
  }
  if (typeof data?.isDefault !== 'number' || ![1, 0].includes(data?.isDefault)) {
    delete _data.isDefault;
  }
  return axios.get(`/system/productTemplate/page`, { params: _data }) as unknown as Promise<Response<Paging<ReferralTemplate>>>;
}

/** 得到支付模板 v1 */
export function getReferralTemplateListNewAxios(data: ReferralTemplateListRequest): Promise<Response<Paging<ReferralTemplate>>> {
  const _data: ReferralTemplateListRequest = JSON.parse(JSON.stringify(data));
  if (typeof data?.templateType !== 'number' || ![1, 2, 4].includes(data?.templateType)) {
    delete _data.templateType;
  }
  if (typeof data?.isDefault !== 'number' || ![1, 0].includes(data?.isDefault)) {
    delete _data.isDefault;
  }
  return axios.get(`/system/productTemplate/v1/page`, { params: _data }) as unknown as Promise<Response<Paging<ReferralTemplate>>>;
}

/** 新增模版 */
export function addReferralTemplateAxios(data: TemplateProductMarketingInfo): Promise<Response<string>> {
  return axios.post(`/system/productTemplate/add`, data) as unknown as Promise<Response<string>>;
}

/** 新增模版 v1 */
export function addReferralTemplateNewAxios(data: TemplateProductMarketingInfo): Promise<Response<string>> {
  return axios.post(`/system/productTemplate/v1/add`, data) as unknown as Promise<Response<string>>;
}

/** 编辑模板 */
export function editReferralTemplateAxios(data: TemplateProductMarketingInfo): Promise<Response<string>> {
  return axios.post(`/system/productTemplate/update`, data) as unknown as Promise<Response<string>>;
}

/** 编辑模板 v1 */
export function editReferralTemplateNewAxios(data: TemplateProductMarketingInfo): Promise<Response<string>> {
  return axios.post(`/system/productTemplate/v1/update`, data) as unknown as Promise<Response<string>>;
}

/** 查询推广链接 =》关联模板下的商品 v1 */
export function getTemplateInfoByReferralLinkId(referralLinkId?: number | null | undefined): Promise<Response<TemplateProductMarketingInfo>> {
  return axios.get(`/system/referralRecord/v1/getTemplateInfoByReferralLinkId`, { params: { referralLinkId: referralLinkId || '' } }) as unknown as Promise<
    Response<TemplateProductMarketingInfo>
  >;
}

/**
 * 删除模板
 * @param productTemplateId - 模板 ID
 */
export function delReferralTemplateAxios(productTemplateId: number): Promise<Response<string>> {
  return axios.delete(`/system/productTemplate/delete`, { params: { productTemplateId } }) as unknown as Promise<Response<string>>;
}

/**
 * 得到商品列表
 * @param data.productType -商品类型 1-充值虚拟币；2-购买会员；4-购买剧集；
 */
export function getBaseProductAllListAxios(data?: { productType: 1 | 2 | 4 }): Promise<Response<Product[]>> {
  return axios.get(`/system/baseProduct/list`, { params: data }) as unknown as Promise<Response<Product[]>>;
}

/**
 * 得到赠送商品列表
 * @param data.productType -商品类型 1-充值虚拟币；2-购买会员；
 */
export function getGiveProductAllListAxios(data?: { productType: 1 | 2 | 4 }): Promise<Response<Product[]>> {
  return axios.get(`/system/productGive/list`, { params: data }) as unknown as Promise<Response<Product[]>>;
}

/**
 * 得到回传列表 (IAA)
 */
export function getIaaBackTemplateListAxios(data: GetIaaBackTemplateListRequest): Promise<Response<Paging<PdtIaaBackTemplateDTO>>> {
  return axios.get(`/system/iaaBackTemplate/getPage`, { params: data }) as unknown as Promise<Response<Paging<PdtIaaBackTemplateDTO>>>;
}

/**
 * 添加回传模板 (IAA)
 */
export function addIaaBackTemplateAxios(data: AddAiiBackTemplateRequest): Promise<Response<string>> {
  return axios.post(`/system/iaaBackTemplate/add`, data) as unknown as Promise<Response<string>>;
}

/**
 * 编辑回传模板 (IAA)
 */
export function editIaaBackTemplateAxios(data: EditAiiBackTemplateRequest): Promise<Response<string>> {
  return axios.post(`/system/iaaBackTemplate/update`, data) as unknown as Promise<Response<string>>;
}

/**
 * 添加回传模板 (AIP)
 */
export function addBackTemplateAxios(data: AddBackTemplateRequest): Promise<Response<string>> {
  return axios.post(`/system/pdtProductBackTemplate/add`, data) as unknown as Promise<Response<string>>;
}

/**
 * 编辑回传模板 (AIP)
 */
export function editBackTemplateAxios(data: EditBackTemplateRequest): Promise<Response<string>> {
  return axios.post(`/system/pdtProductBackTemplate/update`, data) as unknown as Promise<Response<string>>;
}

/**
 * 得到回传列表 (AIP)
 */
export function getBackTemplateListAxios(data: GetBackTemplateListRequest): Promise<Response<Paging<PdtProductBackTemplateAggregation>>> {
  return axios.get(`/system/pdtProductBackTemplate/page`, { params: data }) as unknown as Promise<Response<Paging<PdtProductBackTemplateAggregation>>>;
}

/**
 * 删除回传模板
 * @param productTemplateId - 模板 ID
 */
export function delBackTemplateAxios(productBackTemplateId: number): Promise<Response<string>> {
  return axios.delete(`/system/pdtProductBackTemplate/removeById`, { params: { productBackTemplateId } }) as unknown as Promise<Response<string>>;
}

/**
 * 得到所有回传列表 (IAP)
 * @param data.productTemplateId - 模板 ID
 */
export function getAllBackTemplateListAxios(data?: { productTemplateId: number }): Promise<Response<IaaBaseBackTemplate[]>> {
  return axios.get(`/system/pdtProductBackTemplate/list`, { params: data }) as unknown as Promise<Response<IaaBaseBackTemplate[]>>;
}

/**
 * 得到所有回传列表 (IAA)
 * @param data.productTemplateId - 模板 ID
 */
export function getIAAAllBackTemplateListAxios(): Promise<Response<BaseBackTemplate[]>> {
  return axios.get(`/system/iaaBackTemplate/list`) as unknown as Promise<Response<BaseBackTemplate[]>>;
}

/**
 * 得到小程序信息
 */
export function getMpInfoAxios(): Promise<Response<MpInfo[]>> {
  return axios.get(`/system/referralInvestmentMpInfo/getInvestmentAppSocialList`) as unknown as Promise<Response<MpInfo[]>>;
}

/**
 * 广告主数据列表  -- 分页
 */
export function getAdConsumeList(data: AdConsumeListRequest): Promise<Response<Paging<AdConsumeListResponse>>> {
  return axios.get(`/system/oceAdvertiserEverydayCensus/page`, { params: data }) as unknown as Promise<Response<Paging<AdConsumeListResponse>>>;
}

/**
 * 推广链接每日数据列表  -- 分页
 */
export function getMonitorLinkReportList(data: MonitorLinkReportRequset): Promise<Response<Paging<MonitorLinkReportResponse>>> {
  return axios.get(`/system/referralEverydayCensus/getPageByDate`, { params: data }) as unknown as Promise<Response<Paging<MonitorLinkReportResponse>>>;
}

/**
 * 手动同步广告主消耗数据
 */
export function syncDataCensus(data: { referralCensusId: number }): Promise<Response<string>> {
  return axios.get(`/system/referralEverydayCensus/syncDataCensus`, { params: data }) as Promise<Response<string>>;
}

/**
 * 推广链接每日消耗数据列表  -- 分页
 */
export function getPageEverydayConsume(data: GetPageEverydayConsumeRequest): Promise<Response<GetPageEverydayConsumeAggregation>> {
  return axios.get(`/system/referralEverydayCensus/getPageEverydayConsume`, { params: data }) as Promise<Response<GetPageEverydayConsumeAggregation>>;
}

/**
 * 推广链接每日消耗数据列表(巨量)  -- 分页
 */
export function getPageEverydayConsumeJl(data: GetPageEverydayConsumeRequest): Promise<Response<Paging<OceAdvertiserEverydayCostItem>>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/page`, { params: data }) as Promise<Response<Paging<OceAdvertiserEverydayCostItem>>>;
}

/**
 * 投手数据列表  -- 分页
 */
export function getPitcherData(data: GetPageEverydayConsumeRequest): Promise<Response<Paging<OceAdvertiserEverydayCostItem>>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getPitcherData`, { params: data }) as Promise<Response<Paging<OceAdvertiserEverydayCostItem>>>;
}

/**
 * 短剧数据列表  -- 分页
 */
export function getDramaData(data: GetPageEverydayConsumeRequest): Promise<Response<Paging<OceAdvertiserEverydayCostItem>>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getDramaData`, { params: data }) as Promise<Response<Paging<OceAdvertiserEverydayCostItem>>>;
}

/**
 * 推广链接每日消耗数据列表(巨量)  -- 分页
 */
export function correctPayTotalAmount(data: { advertiserCostId: number }): Promise<Response<OceAdvertiserEverydayCostItem>> {
  return axios.post(`/system/oceAdvertiserEverydayCost/correctPayTotalAmount`, data) as Promise<Response<OceAdvertiserEverydayCostItem>>;
}

/**
 * 更新一个广告主某天消耗(巨量)
 */
export function syncAdvertiserRecordCost(data: { advertiserCostId: number }): Promise<Response<string>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/syncAdvertiserRecordCost`, { params: data }) as Promise<Response<string>>;
}

/**
 * 更新广告主某天消耗(巨量)
 */
export function syncAllAdvertiserRecordCost(data: { startDate: string; endDate: string; iaaFlag: number }): Promise<Response<string>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/syncAllAdvertiserRecordCost`, { params: data }) as Promise<Response<string>>;
}

/**
 * 校正所有广告主当日支付订单金额、分成金额、利润
 */
export function updateAllCorrectPayTotalAmount(data: { startDate: string; endDate: string; iaaFlag: number }): Promise<Response<string>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/updateAllCorrectPayTotalAmount`, { params: data }) as Promise<Response<string>>;
}

/**
 * 查询消耗统计数据
 */
export function getOceEverydayCostCensusData(data: GetPageEverydayConsumeRequest): Promise<Response<OceEverydayCostCensusData>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getOceEverydayCostCensusData`, { params: data }) as Promise<Response<OceEverydayCostCensusData>>;
}

// /**
//  * 查询某链接消耗统计数据
//  */
// export function getOceEverydayHoursCostCensusData(data: GetOceEverydayHoursCostCensusDataRequest): Promise<Response<OceEverydayCostCensusData>> {
//   return axios.get(`/system/oceAdvertiserEverydayCost/getOceEverydayHoursCostCensusData`, { params: data }) as Promise<Response<OceEverydayCostCensusData>>;
// }

/**
 * 查询某小时总消耗列表 - 分页
 */
export function getOceEverydayHoursTotalCost(data: GetOceEverydayHoursTotalCostRequest): Promise<Response<OceEverydayHoursTotalCostItem[]>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getOceEverydayHoursTotalCost`, { params: data }) as Promise<Response<OceEverydayHoursTotalCostItem[]>>;
}

/**
 * 回传记录表列表 (IAP)  -- 分页
 */
export function getLinkBackRecord(data: LinkBackRecordRequest): Promise<Response<Paging<LinkBackRecordItem>>> {
  return axios.get(`/system/oceAnEnGineReportRecordAPI/page`, { params: data }) as Promise<Response<Paging<LinkBackRecordItem>>>;
}

/**
 * 回传记录表列表 (IAA)  -- 分页
 */
export function getIaaLinkBackRecord(data: IaaLinkBackRecordRequest): Promise<Response<Paging<IaaLinkBackRecordItem>>> {
  return axios.get(`/system/tradeOrderIaaBackRecord/getPage`, { params: data }) as Promise<Response<Paging<IaaLinkBackRecordItem>>>;
}

/**
 * 手动回传
 */
export function linkBackRecordSyncBack(id: number): Promise<Response<string>> {
  return axios.post(`/system/oceAnEnGineReportRecordAPI/syncBack`, { id }) as Promise<Response<string>>;
}

/**
 * 手动回传 (IAA)
 */
export function iaaReportOrderBackAxios(iaaEcpmBackId: number): Promise<Response<string>> {
  return axios.get(`/system/tradeOrderIaaBackRecord/reportIaaBack`, { params: { iaaEcpmBackId } }) as Promise<Response<string>>;
}

/**
 * 手动回传 (AIP)
 */
export function reportOrderBackAxios(orderId: number): Promise<Response<string>> {
  return axios.get(`/system/order/reportOrderBack`, { params: { orderId } }) as Promise<Response<string>>;
}

/**
 * 根据广告主第三方id，查询广告主信息
 */
export function queryAdvertiserInfo(data: { thirdAdvertiserId: string }): Promise<Response<ThirdAdvertiserIdOptions>> {
  return axios.get(`/system/oceAdvertiserInfo/queryAdvertiserInfo`, { params: data }) as Promise<Response<ThirdAdvertiserIdOptions>>;
}

// /**
//  * 消耗数据时速列表小时  -- 分页
//  */
// export function getCensusHoursPage(data: CensusHoursRequest): Promise<Response<Paging<DataConsumptionSpeedMinuteItem>>> {
//   return axios.get(`/system/referralEverydayCensusHours/getCensusHoursPage`, { params: data }) as Promise<Response<Paging<DataConsumptionSpeedMinuteItem>>>;
// }
// /**
//  * 消耗数据时速列表分钟  -- 分页
//  */
// export function getCensusMinutePage(data: CensusHoursRequest): Promise<Response<Paging<DataConsumptionSpeedMinuteItem>>> {
//   return axios.get(`/system/referralEverydayCensusMintues/getCensusMintuesPage`, { params: data }) as Promise<Response<Paging<DataConsumptionSpeedMinuteItem>>>;
// }

/**
 * 消耗数据时速列表小时(巨量)  -- 分页
 */
export function getCensusHoursPageJl(
  data: CensusHoursRequest
): Promise<Response<{ hoursData: DataConsumptionSpeedMinuteItem[]; totalData: OceEverydayCostCensusData }>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getHoursCostPage`, { params: data }) as Promise<
    Response<{ hoursData: DataConsumptionSpeedMinuteItem[]; totalData: OceEverydayCostCensusData }>
  >;
}

/**
 * 消耗数据时速列表分钟(巨量)  -- 分页
 */
export function getCensusMinutePageJl(data: CensusHoursRequest): Promise<Response<DataConsumptionSpeedMinuteItem[]>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getMintusCostPage`, { params: data }) as Promise<Response<DataConsumptionSpeedMinuteItem[]>>;
}

/**
 * 广告主绑定推广链接 --列表分页
 */
export function getOceAdvertiserReferralRelation(data: OceAdvertiserReferralRelationReq): Promise<Response<Paging<OceAdvertiserReferralRelationItem>>> {
  return axios.get(`/system/oceAdvertiserReferralRelation/getPage`, { params: data }) as Promise<Response<Paging<OceAdvertiserReferralRelationItem>>>;
}

/**
 * 广告主绑定推广链接
 */
export function addOceAdvertiserReferralRelation(data: OceAdvertiserReferralRelationItem): Promise<Response<string>> {
  return axios.post(`/system/oceAdvertiserReferralRelation/add`, data) as Promise<Response<string>>;
}

/**
 * 广告主绑定推广链接 更新
 */
export function updateOceAdvertiserReferralRelation(data: OceAdvertiserReferralRelationItem): Promise<Response<string>> {
  return axios.post(`/system/oceAdvertiserReferralRelation/update`, data) as Promise<Response<string>>;
}

/**
 * 广告主绑定推广链接
 */
export function updateStateOceAdvertiserReferralRelation(data: { advertiserReferralId: number }): Promise<Response<string>> {
  return axios.post(`/system/oceAdvertiserReferralRelation/updateStatus`, data) as Promise<Response<string>>;
}

/**
 * 素材数据总消耗列表  -- 分页
 */
export function getOceMaterialRecord(data: OceMaterialRecordReq): Promise<Response<Paging<OceMaterialRecordItem>>> {
  return axios.get(`/system/oceMaterialRecord/page`, { params: data }) as Promise<Response<Paging<OceMaterialRecordItem>>>;
}

/**
 * 素材总消耗 -- 汇总
 */
export function getOceMaterialRecordData(data: OceMaterialRecordReq): Promise<Response<{ statCost: string }>> {
  return axios.get(`/system/oceMaterialRecord/getOceMaterialRecordData`, { params: data }) as Promise<
    Response<{
      statCost: string;
    }>
  >;
}

/**
 * 编辑人员数据列表  -- 分页
 */
export function getCompilePeopleRecord(data: OceMaterialRecordReq): Promise<Response<Paging<CompilePeopleRecord>>> {
  return axios.get(`/system/oceMaterialRecord/getEditPage`, { params: data }) as Promise<Response<Paging<CompilePeopleRecord>>>;
}

/**
 * 新增
 */
export function addCompilePeopleRecord(data: { compileName: string }): Promise<Response<string>> {
  return axios.post(`/system/compilePeopleRecord/add`, data) as Promise<Response<string>>;
}

/**
 * 时速趋势 (表内)
 */
export function getSpeedourTendencyAxios(data: { referralLinkId: number; thatdayTimestamp: number }): Promise<Response<HoursBlockPayAmount[]>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getHoursBlockPayAmount`, { params: data }) as Promise<Response<HoursBlockPayAmount[]>>;
}

/**
 * 时速趋势 (总计)
 */
export function getTotalSpeedourTendencyAxios(data: { startDate: string; endDate: string; iaaFlag: number }): Promise<Response<HoursBlockPayAmount[]>> {
  return axios.get(`/system/oceAdvertiserEverydayCost/getTotalHoursBlockPayAmount`, { params: data }) as Promise<Response<HoursBlockPayAmount[]>>;
}

/** 统计） */
export function getReferralCensusData(data?: any): Promise<Response<OrderTotalPrice>> {
  return axios.get(`/system/referralEverydayCensus/getReferralCensusData`, { params: data }) as unknown as Promise<Response<OrderTotalPrice>>;
}

/** IAA回传记录导出 */
export function tradeOrderIaaBackRecordExcel(data?: any) {
  return axios.get(`/system/tradeOrderIaaBackRecord/iaaExcel`, {
    params: data,
    responseType: 'blob',
  }) as unknown as Blob;
}

/** 投手数据导出 */
export function pitcherRecordExcel(data?: any) {
  return axios.get(`/system/oceAdvertiserEverydayCost/exportExcelPitcherData`, {
    params: data,
    responseType: 'blob',
  }) as unknown as Blob;
}

/** 编辑素材消耗查询导出 */
export function consumptionRecordExcel(data?: any) {
  return axios.get(`/system/oceMaterialRecord/exportExcel`, { params: data, responseType: 'blob' }) as unknown as Blob;
}

/**
 * 广告每日新增统计
 */
export function submitToken(data: { logidUrl: string; token: string; promotionUrl: string }): Promise<Response<Paging<OceMaterialRecordItem>>> {
  return axios.post(`/system/baidu/baiduTest`, data);
}

export function getToken(): Promise<
  Response<{
    logidUrl: string;
    token: string;
  }>
> {
  return axios.get(`/system/baidu/getBaiduConfig`, { params: {} });
}

export function ocePromotionAddEverydayCensus(data: OceMaterialRecordReq): Promise<Response<Paging<OceMaterialRecordItem>>> {
  return axios.get(`/system/ocePromotionAddEverydayCensus/page`, { params: data });
}

/** 视频号列表 */
export function tencentFinderRecordPage(data: GetReferralRecordListRequest): Promise<Response<Paging<ReferralRecord>>> {
  return axios.get(`/system/tencentFinderRecord/page`, { params: data }) as unknown as Promise<Response<Paging<ReferralRecord>>>;
}

/**
 * 视频号列表新增
 */
export function tencentFinderRecordAdd(data: any): Promise<Response> {
  return axios.post(`/system/tencentFinderRecord/add`, data) as Promise<Response>;
}

/**
 * 视频号列表修改
 */
export function tencentFinderRecordUpdate(data: any): Promise<Response> {
  return axios.post(`/system/tencentFinderRecord/update`, data) as Promise<Response>;
}

/**
 * 视频号列表修改
 */
export function getTemplateProductByFinderId(data: any): any {
  return axios.get(`/system/tencentFinderRecord/getTemplateProductByFinderId`, { params: data }) as any;
}

export type OrderTotalPrice = {
  /**
   * 当日总收入
   */
  thatdayTotalAmount: number;
};

export interface HoursBlockPayAmount {
  /** 总消耗 */
  cost: number;
  /** 当前时段的分成金额 */
  dividendAmountHoursCurrent: number;
  /** 当前时段+n的分成金额 */
  dividendAmountHoursFive: number;
  /** 当前时段+4的分成金额 */
  dividendAmountHoursFour: number;
  /** 当前时段+1的分成金额 */
  dividendAmountHoursOne: number;
  /** 当前时段+3的分成金额 */
  dividendAmountHoursThree: number;
  /** 当前时段+2的分成金额 */
  dividendAmountHoursTwo: number;
  /** 当日分成金额 */
  thatdayDividendAmount: number;
  /** 广告总分成金额 */
  iaaDividendAmount: number;
  /** 当日某时时间  */
  thatdayHoursDate: string;
  /** 当日某时时间戳yyyy-mm-dd HH */
  thatdayHoursTimestamp: number;
}

export interface OceMaterialRecordReq {
  /**
   * 当前页
   */
  current: number;
  /**
   * 结束日期 yyyy-MM-dd
   */
  endDate?: string;
  /**
   * 素材id
   */
  compileName?: string;
  materialId?: string;
  adPlatformMaterialName?: string;
  /**
   * 每页数量
   */
  size: number;
  /**
   * 开始日期 yyyy-MM-dd
   */
  startDate?: string;
  column?: string;
  asc?: boolean | string;
  createName?: string;
}

export interface OceAdvertiserReferralRelationReq {
  /**
   * 投手名称
   */
  createName?: string;
  /**
   * 当前页
   */
  current: number;
  /**
   * 短剧名称
   */
  dramaTitle?: string;
  /**
   * 推广链接id
   */
  referralLinkId?: string;
  /**
   * 每页数量
   */
  size: number;
  /**
   * 第三方广告主id
   */
  thirdAdvertiserId?: string;
  deptId?: string;
  /** 推广链接类型 1-袋鼠；2-番茄；3-点众；4-番茄IAA；5-袋鼠IAA；  */
  referralLinkType?: '' | 1 | 2 | 3 | 4 | 5;
  pullStatus?: '' | 0 | 1;
}

export interface CensusHoursRequest {
  /** 日期(时间戳) */
  thatdayTimestamp?: number;
  /** 推广链接 id */
  referralLinkId?: number;
}

export type ThirdAdvertiserIdOptions = {
  appCode?: string;
  thirdAdvertiserAppCode?: any;
  thirdAdvertiserId: string;
  thirdAdvertiserName: string;
};

export interface LinkBackRecordRequest {
  /**
   * 小程序名称
   */
  appName?: string;
  /**
   * 当前页
   */
  current: number;
  /**
   * 用户设备系统平台：andorid-安卓；ios-苹果；
   */
  devicePlatform?: string;
  /**
   * 短剧id
   */
  dramaId?: string;
  /**
   * 支付渠道：WECHAT-微信；ALIPAY-支付宝；DOUYIN-抖音；UNKNOWN-未知；DOUYIN-DIAMOND-抖音K币；
   */
  payChannel?: string;
  /**
   * 小程序平台
   */
  platform?: string;
  /**
   * 广告id
   */
  promotionId?: string;
  /**
   * 上报状态
   */
  reportStatus?: string;
  /**
   * 每页数量
   */
  size: number;
  /**
   * 第三方广告主id
   */
  thirdAdvertiserId?: string;
  referralLinkId?: string;
  filterDate?: string;
}

export type IaaLinkBackRecordRequest = {
  /**
   * 是否升序
   */
  asc?: boolean;
  /**
   * 排序字段名
   */
  column?: string;
  /**
   * 当前页
   */
  current: number;
  /**
   * 每页显示条数，默认 10
   * 每页数量
   */
  size: number;

  /** 推广链接 */
  referralLinkId?: string;
  /** 筛选日期 */
  filterDate?: string;
  /** 开始时间 */
  startDate?: string;
  /** 结束时间 */
  endDate?: string;
  userId?: string;
};

export type GetOceEverydayHoursTotalCostRequest = Omit<GetPageEverydayConsumeRequest, 'asc' | 'column' | 'current' | 'size'>;

export type GetOceEverydayHoursCostCensusDataRequest = {
  /** 日期 yyyy-MM-dd */
  startDate: string;
  /** 结束日期 */
  endDate: string;
  /** 推广链接id  */
  referralLinkId?: string;
};

export type GetPageEverydayConsumeRequest = {
  /** 当前页 */
  current: number;
  /** 每页数量 */
  size: number;
  /** 是否升序 */
  asc?: boolean;
  /** 排序字段 */
  column?: string;
  /** 日期 yyyy-MM-dd */
  startDate: string;
  /** 结束日期 */
  endDate: string;
  /** 推广链接id  */
  referralLinkId?: string;
  /** 推广链接类型 1-袋鼠；2-番茄；3-点众；4-番茄IAA；5-袋鼠IAA；  */
  referralLinkType?: '' | 1 | 2 | 3 | 4 | 5;
  /** 广告主id */
  thirdAdvertiserId?: string;
  /** 短剧名称 */
  dramaTitle?: string;
  /** 投手名称 */
  createName?: string;
  /** 广告主名称 */
  thirdAdvertiserName?: string;
  /** 小程序平台 1-抖音；2-快手；3-微信； */
  appType: '' | 1 | 2 | 3;
  /** 平台部门 */
  deptId?: number;
  /** 推广模式 */
  iaaFlag?: number;
};

/**
 * IAA回传模板设置  --  返回实体
 *
 * PdtIaaBackTemplateDTO
 */
export interface PdtIaaBackTemplateDTO {
  /**
   * ARPU指标最大值（客单价，千次展现收益，单位1/1000元）
   */
  arpuMaxValue?: number | null;
  /**
   * ARPU指标最小值（客单价，千次展现收益，单位1/1000元）
   */
  arpuMinValue?: number | null;
  /**
   * 平均eCPM指标最大值（千次展现收益，单位1/1000元）
   */
  avgEcpmMaxValue?: number | null;
  /**
   * 平均eCPM指标最小值（千次展现收益，单位1/1000元）
   */
  avgEcpmMinValue?: number | null;
  /**
   * 回传比例分母
   */
  backDenominatorNum?: number | null;
  /**
   * 回传比例分子
   */
  backNumeratorNum?: number | null;
  /**
   * 回传方式：1-全部回传；2-自定义；
   */
  backWay?: 1 | 2 | null;
  /**
   * 关键行为配置（多个逗号隔开）：1-IPU；2-ARPU；3-平均eCPM；4-最大eCPM；
   */
  behavioralType?: string | null;
  /**
   * 创建者
   */
  createBy?: string | null;
  /**
   * 创建时间
   */
  createTime?: string | null;
  /**
   * IAA回传模板id
   */
  iaaBackTemplateId?: number | null;
  /**
   * 回传名称：1-关键行为模式；2-ROI变现模式；
   */
  iaaBackType?: 1 | 2 | null;
  /**
   * 规则名称
   */
  iaaRuleName?: string | null;
  /**
   * IPU指标最大值（看广告次数）
   */
  ipuMaxValue?: number | null;
  /**
   * IPU指标最小值（看广告次数）
   */
  ipuMinValue?: number | null;
  /**
   * 最大eCPM指标最大值（千次展现收益，单位1/1000元）
   */
  maxEcpmMaxValue?: number | null;
  /**
   * 最大eCPM指标最小值（千次展现收益，单位1/1000元）
   */
  maxEcpmMinValue?: number | null;
  /**
   * 时间窗口：1-24小时；2-自然日；3-自然日+3h；
   */
  timeScope?: 1 | 2 | 3 | null;
  /**
   * 更新者
   */
  updateBy?: string | null;
  /**
   * 更新时间
   */
  updateTime?: string | null;

  [property: string]: any;
}

export interface GetPageEverydayConsumeAggregation {
  /**
   * 每日消耗数据列表
   */
  consumeList: Paging<GetPageEverydayConsumeDTO[]>;
  /**
   * 利润
   */
  profitAmount?: number | null;
  /**
   * 当日回本率
   */
  thatdayRecoveryRate?: number | null;
  /**
   * 当日收入总金额
   */
  thatdayTotalAmount?: number | null;
  /**
   * 账户总消耗
   */
  totalCost?: number | null;
}

export interface GetPageEverydayConsumeDTO {
  /**
   * 激活数
   */
  active?: number | null;
  /**
   * 实际回传笔数
   */
  activeBackNum?: number | null;
  /**
   * 平均点击单价
   */
  avgClickCost?: number | null;
  /**
   * 平均千次展现费用
   */
  avgShowCost?: number | null;
  /**
   * 回传笔数
   */
  backNum?: number | null;
  /**
   * 点击数
   */
  click?: number | null;
  /**
   * 转化成本
   */
  convertCost?: number | null;
  /**
   * 转化率=转化数/点击数*100%
   */
  convertRate?: number | null;
  /**
   * 转化数=付费数*回传率
   */
  converts?: number | null;
  /**
   * 总消耗
   */
  cost?: number | null;
  /**
   * 点击率
   */
  ctr?: number | null;
  /**
   * 短剧id
   */
  dramaId?: number | null;
  /**
   * 短剧名称
   */
  dramaTitle?: string | null;
  /**
   * 付费成本
   */
  gamePayCost?: number | null;
  /**
   * 付费次数
   */
  gamePayCount?: number | null;
  /**
   * 推广链接id
   */
  referralLinkId?: number | null;
  /**
   * 推广名称
   */
  referralLinkName?: string | null;
  /**
   * 展示数
   */
  show?: number | null;
  /**
   * 当日日期
   */
  thatdayDate?: string | null;
  /**
   * 当日总收入
   */
  thatdayTotalAmount?: number | null;
}

export type OceAdvertiserEverydayCostItem = GetPageEverydayConsumeDTO & {
  advertiserCostId?: number;
  thatdayTimestamp: number;
};

export type OceEverydayCostCensusData = Pick<GetPageEverydayConsumeDTO, 'cost' | 'thatdayTotalAmount'> & {
  /**
   * 当日总支付笔数
   */
  thatdayPaidTotalNum?: number | null;
  /**
   * 当日分成金额
   */
  thatdayDividendAmount?: number | null;
  /**
   * 当日分成金额
   */
  thatdayProfitAmount?: number | null;
  /**
   * 时速
   */
  costHoursSpeed?: number | null;
  /**
   * 回本率
   */
  roic?: number | null;

  /**
   * 回本率
   */
  extRecoveryRate?: number | null;
  /**
   * 广告总分成金额
   */
  iaaDividendAmount?: number | null;
  /**
   * 广告总收入
   */
  iaaTotalAmount?: number | null;

  /**
   * 新增广告总收益
   */
  iaaRegisterTotalAmount?: number | null;
};

export type MpInfo = {
  /** 投广渠道-平台关联id */
  investmentId?: number;
  /** 小程序app_id */
  appId: string;
  /** 投广渠道：juliang-巨量；cili-磁力；tengxun-腾讯；  */
  investmentChannel: 'cili' | 'juliang' | 'tengxun';
  /** 投广平台：mp-toutiao-抖音；mp-kuaishou-快手；mp-weixin-微信； */
  platformType: 'mp-kuaishou' | 'mp-toutiao' | 'mp-weixin';
  /** 小程序名称 */
  appName: string;
  /** 投广渠道名称：juliang-巨量；cili-磁力；tengxun-腾讯；  */
  investmentChannelName: '巨量' | '磁力' | '腾讯';
  /** 投广平台名称：mp-toutiao-抖音；mp-kuaishou-快手；mp-weixin-微信； */
  platformName: '微信' | '快手' | '抖音';
  /** IAA广告：0-否；1-是； */
  iaaFlag: 0 | 1;
  appCode: string;
};

export type GetBackTemplateListRequest = {
  /** 当前页  */
  current: number;
  /** 每页数量 */
  size: number;
};

export type GetIaaBackTemplateListRequest = {
  /** 当前页  */
  current: number;
  /** 每页数量 */
  size: number;
  /** 规则名称  */
  iaaRuleName: string;
};

export type BaseBackTemplate = {
  /** IAP回传模板id  */
  productBackTemplateId?: number;
  /** IAP模板名称  */
  backTemplateName?: string;
};

export type IaaBaseBackTemplate = {
  /** IAA回传模板id  */
  iaaBackTemplateId?: number;
  /** IAA模板名称 */
  iaaRuleName?: string;
};

export interface PdtProductBackTemplateAggregation {
  /** 回传信息列表 */
  backSettingList: BackTemplateProductListInfo[];
  /** 回传模板名称 */
  backTemplateName: string;
  /** 商品回传模板id */
  productBackTemplateId: number;
  /** 模板id */
  productTemplateId: number | null;
  /** 上报类型：11-回传用户所有首充；12-回传用户在注册当天自然日的所有首充；13-回传用户在注册后24小时内的所有首充；21-回传用户所有充值；22-回传用户在注册当天自然日的所有充值；23-回传用户在注册后24小时内的所有充值； */
  reportType: 11 | 12 | 13 | 21 | 22 | 23;
  /** 模板名称  */
  templateName: string;
}

export interface BackTemplateProductListInfo extends BackTemplateProduct {
  /** 回传主键id */
  backId: number;
  /** 商品回传模板id */
  productBackTemplateId: number;
  /** 商品名称 */
  productName: string;
  /** 商品价格 */
  productPrice: number;
}

export interface AddAiiBackTemplateRequest {
  /** ARPU指标最大值（客单价，千次展现收益，单位1/1000元） */
  arpuMaxValue: number | null;
  /** ARPU指标最小值（客单价，千次展现收益，单位1/1000元） */
  arpuMinValue: number | null;
  /** 平均eCPM指标最大值（千次展现收益，单位1/1000元） */
  avgEcpmMaxValue: number | null;
  /** 平均eCPM指标最小值（千次展现收益，单位1/1000元） */
  avgEcpmMinValue: number | null;
  /** 回传比例分母 */
  backDenominatorNum: number;
  /** 回传比例分子 */
  backNumeratorNum: number;
  /** 回传方式：1-全部回传；2-自定义； */
  backWay: 1 | 2;
  /** 关键行为配置（多个逗号隔开）：1-IPU；2-ARPU；3-平均eCPM；4-最大eCPM； */
  behavioralType: string;
  /** 回传模式：1-关键行为模式；2-ROI变现模式； */
  iaaBackType: 1 | 2;
  /** 规则名称 */
  iaaRuleName: string;
  /** IPU指标最大值（看广告次数） */
  ipuMaxValue: number | null;
  /** IPU指标最小值（看广告次数） */
  ipuMinValue: number | null;
  /** 最大eCPM指标最大值（千次展现收益，单位1/1000元） */
  maxEcpmMaxValue: number | null;
  /** 最大eCPM指标最小值（千次展现收益，单位1/1000元） */
  maxEcpmMinValue: number | null;
  /** 时间窗口：1-24小时；2-自然日；3-自然日+3h； */
  timeScope: 1 | 2 | 3;
}

export interface EditAiiBackTemplateRequest extends AddAiiBackTemplateRequest {
  /** IAA回传模板id  */
  iaaBackTemplateId: number;
}

export interface AddBackTemplateRequest {
  /** 回传模板名称 */
  backTemplateName: string;
  /** 商品回传比例设置详情  */
  productList: BackTemplateProduct[];
  /** 模板id */
  productTemplateId: number;
  /** 上报类型：11-回传用户所有首充；12-回传用户在注册当天自然日的所有首充；13-回传用户在注册后24小时内的所有首充；21-回传用户所有充值；22-回传用户在注册当天自然日的所有充值；23-回传用户在注册后24小时内的所有充值； */
  reportType: 11 | 12 | 13 | 21 | 22 | 23;
}

export interface EditBackTemplateRequest extends AddBackTemplateRequest {
  /** 回传模版ID */
  productBackTemplateId: number;
}

export interface BackTemplateProduct {
  /** 回传最低笔数 */
  backMinNum: number;
  /** 回传比例分子 */
  backNumeratorNum: number;
  /** 回传比例分母 */
  backDenominatorNum: number;
  /** 回传比例(70表示70%） */
  backRate: number;
  /** 商品id */
  productId: number;
  /** 商品-营销关联id */
  productMarketingId?: number;
  /** 商品名称 */
  _name?: string;
}

export type Product = {
  /** 商品id  */
  productId: number;
  /**商品名称 */
  productName: string;
  /** 商品价格（元） */
  productPrice: number;
  /** 数量（对应虚拟币数或VIP天数） */
  productQuantity: number;
  /** 商品类型：1-充值虚拟币；2-购买会员；4-购买全集； */
  productType: number;
  /** 单位  */
  unit: string | null;
  /** 商品类型描述：1-充值虚拟币；2-购买会员；4-购买全集； */
  productTypeDesc?: string | null;
};

export type ReferralTemplateListRequest = {
  /** 当前页 */
  current: number;
  /** 每页数量 */
  size: number;
  /** 模板名称 */
  templateName?: string;
  /** 模板类型：1-虚拟币；2-会员；4-短剧解锁； */
  templateType?: 1 | 2 | 4 | undefined;
  /** 是否默认 1-默认，0-非默认 | null-全部 */
  isDefault?: 1 | 2 | 4 | undefined;
};

export type ReferralTemplate = {
  /** 模板下的商品  */
  productList: MarketingProduct[];
  /** 模板id */
  productTemplateId?: number;
  /** 模板名称  */
  templateName: string;
  /** 模板类型：1-虚拟币；2-会员；4-短剧解锁；   */
  templateType: 1 | 2 | 4;
  /** 广告解锁：0-不支持；1-支持； */
  advertUnlock: 0 | 1;
  /** 默认选中的下标 */
  selectIndex: number;
  /** 是否默认 1-默认，0-非默认 */
  isDefault?: 0 | 1 | null;
  /** 是否首次付费：0-首次；1-非首次； */
  isFirstRecharge?: 0 | 1 | null;
  /** 微信视频号模板：0-否；1-是； */
  wxFinderFlag?: number;
};

export interface TemplateProductMarketingInfo {
  /** 模板下的商品  */
  productList: MarketingProduct[];
  /** 模板id */
  productTemplateId?: number;
  /** 模板名称  */
  templateName: string;
  /** 模板类型：1-虚拟币；2-会员；4-短剧解锁；   */
  templateType: 1 | 2 | 4;
  /** 广告解锁：0-不支持；1-支持； */
  advertUnlock: 0 | 1;
  /** 默认选中的下标 */
  selectIndex: number;
  /** 回传模版名称 */
  backTemplateName?: string;
  /** IAA回传模板id  */
  iaaBackTemplateId?: number;
  /** 模板名称 */
  iaaRuleName?: string;
  /** 链接 ID */
  referralLinkId?: string;
  /** 商品回传模板id */
  productBackTemplateId?: number;
  /** 微信视频号模板标记 */
  wxFinderFlag?: number;
}

export interface ReferralLinkUrl {
  /** 平台名称 */
  appName: string;
  /** 平台appId */
  appId: string;
  /** 兜底链接 */
  bottomLinkUrl: string;
  /** 短剧详情页path  */
  dramaDetailPath: string;
  /** 巨量引擎通知地址 */
  massiveMonitorNotifyUrl: string;
  /** 短剧剧集第三方参数链接地址  */
  thirdLinkUrl: string;
  /** 原始 id  */
  appOriginalId?: string;
  /** 平台名称  */
  platformName: string;
}

export type LinkTemplateType = 'dramaFirstTemplate';

export interface AllLinkTemplateInfo {
  /** 推广链接id */
  referralLinkId: number;
  /** 商品回传模板id */
  productBackTemplateId?: number;
  /** 商品回传模板名称 */
  backTemplateName: string;
  /** 回传模版名称 */
  productTemplateName: string;
  /** 短剧解锁(首充) */
  dramaFirstTemplate?: TemplateProductMarketingInfo;
  //  /** K币充值(首充) */
  //  coinFirstTemplate: TemplateProductMarketingInfo;
  // /** 会员充值(首充) */
  // vipFirstTemplate: TemplateProductMarketingInfo;
  // /** K币充值(复购) */
  // coinNotFirstTemplate: TemplateProductMarketingInfo;
  // /** 短剧解锁(复购) */
  // dramaNotFirstTemplate: TemplateProductMarketingInfo;
  // /** 会员充值(复购) */
  // vipNotFirstTemplate: TemplateProductMarketingInfo;
}

export type MarketingProduct = {
  uuid: string;
  /**
   * 赠送虚拟币数
   */
  giveCoins?: string | null;
  /**
   * 商品营销信息
   */
  marketingDesc?: string | null;
  /**
   * 商品名称
   */
  productName: string;
  /**
   * 商品价格（元）
   */
  productPrice: string;
  /**
   * 数量（对应虚拟币数或VIP天数）
   */
  productQuantity?: string;
  /**
   * 模板id
   */
  productTemplateId?: string | null;
  /**
   * 商品类型：1-充值虚拟币；2-购买会员；3-购买剧集；4-购买全集；10-虚拟币解锁单集；11-分享解锁；12-权益券解锁；
   */
  productType: number;
  /**
   * 推荐标签
   */
  recommendTags?: string | null;
  /**
   * 展示状态：0-不展示；1-展示；
   */
  showStatus?: number | null;

  /** 以下为自定义属性 */
  numberOfEpisodes?: number | string;

  productId?: number | string;

  balance?: number | string;
};

export type SaveProductTemplateRequest = {
  /** 推广链接id  */
  referralLinkId: number;
  /** 模板信息 */
  templateInfoList: TemplateInfoRequest[];
  /** 商品回传模板id */
  productBackTemplateId?: number;
};

export interface TemplateInfoRequest {
  /** 是否首次付费：0-首次；1-非首次；*/
  isFirstRecharge: number;
  /** 首次充值模板id */
  productTemplateId: number;
  /** 模板类型：1-虚拟币；2-会员；4-短剧解锁； */
  templateType: 1 | 2 | 4;
}

export type ReferralTemplateInsertModel = {
  /** 是否首次付费：0-首次；1-非首次； */
  isFirstRecharge: 0 | 1;
  /** 商品模板id */
  productTemplateId: number;
};

export type Drama = {
  /** 短剧id */
  dramaId: number;
  /** 短剧名称  */
  dramaTitle: string;
};
export type Episode = {
  /** 剧集标题 */
  episodeTitle: string;
  /** 剧集名称 */
  episodeId: number;
};
export type ReferralLink = {
  referralLinkName?: string;
  /** 短剧id  */
  dramaId?: number | null;
  /** 剧集id  */
  episodeId?: number | null;
  /** 单集解锁价格（K币）*/
  price?: number | null;
  /** 发布平台：1-抖音；2-快手 */
  pushPlatform?: 1 | 2;
  /** 付费剧集序号 */
  rechargeEpisodeNum?: number | null;
  /** 推广链接id */
  referralLinkId?: number | null;
  /** 投广渠道-平台关联id */
  investmentId?: number | null;
  /** 备注 */
  remark?: string;
  /** 第三方广告主id */
  // thirdAdvertiserId: string;
  /** 广告主账户名 */
  // thirdAdvertiserName?: string | null;
  /** 商品模板id */
  productTemplateId?: number | null;
  /** IAP回传模板id */
  productBackTemplateId?: number | null;
  /** IAA回传模版 */
  iaaBackTemplateId?: number | null;
  /** 广告解锁：0-不支持；1-支持； */
  advertUnlock?: 0 | 1;
  /** IAA广告：0-否；1-是 */
  iaaFlag?: 0 | 1;
  /** 平台编码 */
  appCode?: string;
  wxFinderId?: string;
  createName?: string;
  wxFinderName?: string;
  wxFinderRecordId?: string;
  drama?: {
    dramaId?: number;
    dramaTitle?: string;
  };
  episode?: {
    episodeId?: number;
    episodeTitle?: string;
  };
  useOrigin?: string;
};

export type GetReferralRecordListRequest = {
  referralLinkName?: string;
  /** 当前页  */
  current: number;
  /** 每页数量 */
  size: number;
  /** 推广链接id */
  referralLinkId?: string;
  dramaTitle?: string;
  thirdAdvertiserId?: string;
  createName?: string;
  investmentChannel?: string;
  pushPlatform?: string;
  wxFinderId?: string;
  wxFinderName?: string;
};

export type ReferralRecord = {
  /** 创建时间 */
  createTime: string | null;
  createName: string | null;
  /** 剧集封面 */
  dramaCover: string | null;
  /** 短剧id  */
  dramaId: number;
  /** 短剧名称  */
  dramaTitle: string;
  /** 剧集数  */
  episodeId: number;
  /** 剧集数  */
  episodeSeq?: number | null;
  /** 链接地址 */
  linkUrl?: string | null;
  /** 商品模板id */
  productTemplateId?: number | null;
  /** 发布平台：1-抖音；2-快手 */
  pushPlatform: 1 | 2;
  /** 推广链接id */
  referralLinkId?: number | null;
  /** 备注 */
  remark?: string | null;
  /** 短剧剧集第三方参数链接地址 */
  thirdLinkUrl?: string | null;
  /** 新注册用户累计充值金额  */
  paidAmount?: number | null;
  /** 付费笔数 */
  paidCount?: number | null;
  /** 充值人数 */
  paidUserCount?: number | null;
  /** 发布平台：1-抖音；2-快手;3-微信 */
  pushPlatformDesc?: string | null;
  /** 推广名称 */
  referralLinkName?: string | null;
  /** 新注册用户数 */
  registerUserCount?: number | null;
  /** 复购笔数 */
  repeatOrderCount?: number | null;
  /** 单集解锁价格（人民币） */
  price?: number | null;
  /** 付费剧集序号 */
  rechargeEpisodeNum?: number | null;
  /** 复购率 */
  repeatPayRate?: number | null;
  /** 复购人数  */
  repeatUserCount?: number | null;
  /** 当日首充率 */
  todayFirstPaidRate?: number | null;
  /** 当天新注册付费用户arpu值 */
  todayNewPayMemberCountArpu?: number | null;
  /** 当天新注册用户充值金额 */
  todayNewUserOrderAmount?: number | null;
  /** 投广渠道-平台关联id */
  investmentId?: number | null;
  // /** 第三方广告主id */
  // thirdAdvertiserId?: string | null;
  // /** 广告主账户名 */
  // thirdAdvertiserName?: string | null;
  /** 商品回传模板id */
  productBackTemplateId?: number;
  /** 广告解锁：0-不支持；1-支持； */
  advertUnlock?: 0 | 1;
  /** IAA广告：0-否；1-是； */
  iaaFlag: 0 | 1;
};

export interface AdConsumeListRequest {
  /**
   * 当前页
   */
  current: number;
  /**
   * 每页数量
   */
  size: number;
}

export interface AdConsumeListResponse {
  /**
   * 人均次数=当日新增充值总次数/当日新增充值总人数
   */
  avgRechargeNum?: number | null;
  /**
   * 平均千次展现费用
   */
  avgShowCost?: number | null;
  /**
   * 回传率
   */
  backRate?: number | null;
  /**
   * 点击数
   */
  click?: number | null;
  /**
   * 转化成本
   */
  convertCost?: number | null;
  /**
   * 转化数=付费数*回传率
   */
  converts?: number | null;
  /**
   * 总消耗
   */
  cost?: number | null;
  /**
   * 创建时间
   */
  createTime?: string | null;
  /**
   * 客单价=链接当日总充值/链接当日充值总人数
   */
  customerPrice?: number | null;
  /**
   * 短剧名称
   */
  dramaName?: string | null;
  /**
   * 时速
   */
  hourSpeed?: number | null;
  /**
   * 广告主每日数据主键id
   */
  id?: number | null;
  /**
   * 利润=新增充值-消耗
   */
  profit?: number | null;
  /**
   * 付费成本=转化成本*回传率
   */
  rechargeCost?: number | null;
  /**
   * 付费数
   */
  rechargeNum?: number | null;
  /**
   * 推广链接id
   */
  referralLinkId?: number | null;
  /**
   * 展示数
   */
  show?: number | null;
  /**
   * 当日新增
   */
  thatDayAddNum?: number | null;
  /**
   * 当天日期
   */
  thatDayDate?: string | null;
  /**
   * 当日回本=当日新增总充值/当日总消耗
   */
  thatDayIncome?: number | null;
  /**
   * 第三方广告主id
   */
  thirdAdvertiserId?: string | null;
  /**
   * 广告主账户名
   */
  thirdAdvertiserName?: string | null;
}

export interface MonitorLinkReportRequset {
  /**
   * 当前页
   */
  current: number;
  /**
   * 结束日期
   */
  endDate?: string;
  /**
   * 推广链接id
   */
  referralLinkId: string;
  /**
   * 每页数量
   */
  size: number;
  /**
   * 开始日期
   */
  startDate?: string;
  /**
   * 第三方广告主id
   */
  thirdAdvertiserId?: string;

  createName?: string;

  dramaTitle?: string;
}

export interface MonitorLinkReportResponse {
  /**
   * 激活数
   */
  active?: number | null;
  /**
   * 小程序名称
   */
  appName?: string | null;
  /**
   * 平均点击单价
   */
  avgClickCost?: number | null;
  /**
   * 平均千次展现费用
   */
  avgShowCost?: number | null;
  /**
   * 回传笔数
   */
  backNum?: number | null;
  /**
   * 回传人数
   */
  backUserNum?: number | null;
  /**
   * 点击数
   */
  click?: number | null;
  /**
   * 转化成本
   */
  convertCost?: number | null;
  /**
   * 转化率=转化数/点击数*100%
   */
  convertRate?: number | null;
  /**
   * 转化数=付费数*回传率
   */
  converts?: number | null;
  /**
   * 总消耗
   */
  cost?: number | null;
  /**
   * 点击率
   */
  ctr?: number | null;
  /**
   * 短剧id
   */
  dramaId?: number | null;
  /**
   * 短剧名称
   */
  dramaTitle?: string | null;
  /**
   * 当日首充次数
   */
  firstRechargeNum?: number | null;
  /**
   * 付费成本
   */
  gamePayCost?: number | null;
  /**
   * 付费次数
   */
  gamePayCount?: number | null;
  /**
   * 投广渠道名称
   */
  investmentChannelName?: string | null;
  /**
   * =====以下为=======每日数据====================
   * 推广链接每日数据记录id
   */
  referralCensusId?: number | null;
  /**
   * 推广链接id
   */
  referralLinkId?: number | null;
  /**
   * 推广名称
   */
  referralLinkName?: string | null;
  /**
   * 备注
   */
  remark?: string | null;
  /**
   * 当日非首充次数
   */
  repeatRechargeNum?: number | null;
  /**
   * 展示数
   */
  show?: number | null;
  /**
   * 当日日期
   */
  thatdayDate?: string | null;
  /**
   * 当日新用户支付金额
   */
  thatdayNewUserAmount?: number | null;
  /**
   * 当日新用户数量
   */
  thatdayNewUserNum?: number | null;
  /**
   * 当日新用户支付人数
   */
  thatdayNewUserPayNum?: number | null;
  /**
   * 当日新用户支付笔数
   */
  thatdayNewUserPayOrderNum?: number | null;
  /**
   * 当日总支付笔数
   */
  thatdayPaidTotalNum?: number | null;
  /**
   * 当日付款人数
   */
  thatdayPaidUseNum?: number | null;
  /**
   * 当日时间戳
   */
  thatdayTimestamp?: number | null;
  /**
   * 当日总收入
   */
  thatdayTotalAmount?: number | null;
  /**
   * 第三方广告主id
   */
  thirdAdvertiserId?: string | null;
  /**
   * 广告主账户名
   */
  thirdAdvertiserName?: string | null;
}

export interface LinkBackRecordItem {
  /**
   * 全部参数
   */
  allParams?: string | null;
  /**
   * 小程序appid
   */
  appId?: string | null;
  /**
   * 小程序名称
   */
  appName?: string | null;
  /**
   * 是否需要上报：0-否；1-是；
   */
  back?: number | null;
  /**
   * 回传方式：1-直接；2-后端匹配；
   */
  backWay?: number | null;
  /**
   * 创建时间
   */
  createTime?: string | null;
  /**
   * 用户设备系统平台：andorid-安卓；ios-苹果；
   */
  devicePlatform?: string | null;
  /**
   * 短剧id
   */
  dramaId?: number | null;
  /**
   * 短剧名称
   */
  dramaTitle?: string | null;
  /**
   * 当前集数
   */
  episodeSeq?: number | null;
  /**
   * 事件类型
   */
  eventType?: string | null;
  /**
   * id
   */
  id?: number | null;
  /**
   * 订单号
   */
  outTradeNo?: string | null;
  /**
   * 支付渠道：WECHAT-微信；ALIPAY-支付宝；DOUYIN-抖音；UNKNOWN-未知；DOUYIN-DIAMOND-抖音K币；
   */
  payChannel?: string | null;
  /**
   * 小程序平台
   */
  platform?: string | null;
  /**
   * 商品类型：1-充值虚拟币；2-购买会员；3-购买剧集；4-购买全集；10-虚拟币解锁单集；11-分享解锁；12-权益券解锁；13-广告解锁；10-K币解锁；11-分享解锁；
   */
  productType?: number | null;
  /**
   * 广告id
   */
  promotionId?: string | null;
  /**
   * 广告的名称
   */
  promotionName?: string | null;
  /**
   * 回传备注
   */
  remark?: string | null;
  /**
   * 上报参数
   */
  reportParam?: string | null;
  /**
   * 上报结果
   */
  reportResults?: string | null;
  /**
   * 上报状态
   */
  reportStatus?: string | null;
  /**
   * 第三方广告主id
   */
  thirdAdvertiserId?: string | null;
  /**
   * 第三方广告主名称
   */
  thirdAdvertiserName?: string | null;
  /**
   * 付费金额
   */
  totalAmount?: number | null;
}

export interface IaaLinkBackRecordItem {
  /**
   * 观看广告次数
   */
  advertNum?: number | null;
  /**
   * 平均ecpm = 激励金额/观看广告次数
   */
  avgEcpm?: number | null;
  /**
   * 回传时间
   */
  backTime?: string | null;
  /**
   * 创建时间
   */
  createTime?: string | null;
  /**
   * 用户设备系统平台：andorid-安卓；ios-苹果；
   */
  devicePlatform?: string | null;
  /**
   * 激励点击金额，单位十万分之一元
   */
  ecpmCost?: number | null;
  /**
   * IAA回传记录主键id
   */
  iaaEcpmBackId?: number | null;
  /**
   * 最大ecpm
   */
  maxEcpm?: number | null;
  /**
   * 用户openId
   */
  openId?: string | null;
  /**
   * 推广链接id
   */
  referralLinkId?: number | null;
  /**
   * 上报回传结果：0-没有上报；1-上报成功；2-上报失败；
   */
  reportBackStatus?: number | null;
  /**
   * 当日时间戳
   */
  thatdayTimestamp?: number | null;
  /**
   * 用户染色时间
   */
  userRegisterTime?: string | null;
}

export interface DataConsumptionSpeedItem {
  /**
   * 激活数
   */
  active?: number | null;
  /**
   * 平均点击单价
   */
  avgClickCost?: number | null;
  /**
   * 平均千次展现费用
   */
  avgShowCost?: number | null;
  /**
   * 点击数
   */
  click?: number | null;
  /**
   * 转化成本
   */
  convertCost?: number | null;
  /**
   * 转化率=转化数/点击数*100%
   */
  convertRate?: number | null;
  /**
   * 转化数=付费数*回传率
   */
  converts?: number | null;
  /**
   * 总消耗
   */
  cost?: number | null;
  /**
   * 创建者名称
   */
  createName?: string | null;
  /**
   * 点击率
   */
  ctr?: number | null;
  /**
   * 短剧id
   */
  dramaId?: number | null;
  /**
   * 短剧名称
   */
  dramaTitle?: string | null;
  /**
   * 付费成本
   */
  gamePayCost?: number | null;
  /**
   * 付费次数
   */
  gamePayCount?: number | null;
  /**
   * 推广链接每日数据时速记录id
   */
  referralCensusHoursId?: number | null;
  /**
   * 推广链接每日数据记录id
   */
  referralCensusId?: number | null;
  /**
   * 推广链接id
   */
  referralLinkId?: number | null;
  /**
   * 推广名称
   */
  referralLinkName?: string | null;
  /**
   * 展示数
   */
  show?: number | null;
  /**
   * 当日日期
   */
  thatdayDate?: string | null;
  /**
   * 当日某时时间戳yyyy-mm-dd HH
   */
  thatdayHoursTimestamp?: number | null;
}

export interface DataConsumptionSpeedMinuteItem extends DataConsumptionSpeedItem {
  /**
   * 当日某时某分时间
   */
  thatdayMintuesDate?: string | null;
  /**
   * 当日某时某分时间戳yyyy-mm-dd HH:mm
   */
  thatdayMintuesTimestamp?: number | null;
}

export interface GetPageEverydayCensusHoursDTO {
  /**
   * 激活数
   */
  active?: number | null;
  /**
   * 实际回传笔数
   */
  activeBackNum?: number | null;
  /**
   * 平均点击单价
   */
  avgClickCost?: number | null;
  /**
   * 平均千次展现费用
   */
  avgShowCost?: number | null;
  /**
   * 回传笔数
   */
  backNum?: number | null;
  /**
   * 点击数
   */
  click?: number | null;
  /**
   * 转化成本
   */
  convertCost?: number | null;
  /**
   * 转化率=转化数/点击数*100%
   */
  convertRate?: number | null;
  /**
   * 转化数=付费数*回传率
   */
  converts?: number | null;
  /**
   * 总消耗
   */
  cost?: number | null;
  /**
   * 创建者名称
   */
  createName?: string | null;
  /**
   * 点击率
   */
  ctr?: number | null;
  /**
   * 短剧id
   */
  dramaId?: number | null;
  /**
   * 短剧名称
   */
  dramaTitle?: string | null;
  /**
   * 付费成本
   */
  gamePayCost?: number | null;
  /**
   * 付费次数
   */
  gamePayCount?: number | null;
  /**
   * 推广链接每日数据时速记录id
   */
  referralCensusHoursId?: number | null;
  /**
   * 推广链接每日数据记录id
   */
  referralCensusId?: number | null;
  /**
   * 推广链接id
   */
  referralLinkId?: number | null;
  /**
   * 推广名称
   */
  referralLinkName?: string | null;
  /**
   * 展示数
   */
  show?: number | null;
  /**
   * 当日日期
   */
  thatdayDate?: string | null;
  /**
   * 当日总支付笔数
   */
  thatdayPaidTotalNum?: number | null;
  /**
   * 当日付款人数
   */
  thatdayPaidUseNum?: number | null;
  /**
   * 当日某时时间戳yyyy-mm-dd HH:mm:ss
   */
  thatdayTimestampSecond?: number | null;
  /**
   * 当日总收入
   */
  thatdayTotalAmount?: number | null;
}

export interface OceAdvertiserReferralRelationItem {
  appCode: any;
  /**
   * 广告主-推广链接关联id
   */
  advertiserReferralId?: number | null;
  /**
   * 投手名称
   */
  createName?: string | null;
  /**
   * 短剧名称
   */
  dramaTitle?: string | null;
  /**
   * 拉取启用状态：0-停用；1-启用；
   */
  pullStatus?: number | null;
  /**
   * 应用类型：1-抖小；3-微小；
   */
  appType?: number | null;
  /**
   * 推广链接类型：1-袋鼠；2-番茄；3-点众；4-番茄IAA；5-袋鼠IAA；
   */
  referralLinkType?: 1 | 2 | 3 | 4 | 5;
  /**
   * 推广链接id
   */
  referralLinkId?: string | null;
  /**
   * 推广名称
   */
  referralLinkName?: string | null;
  /**
   * 第三方广告主id
   */
  thirdAdvertiserId?: string | null;
  /**
   * 第三方广告主名称
   */
  thirdAdvertiserName?: string | null;
  endTime?: string;
  createTime?: string;
  thirdAdvertiserAppCode?: any;
}

export interface OceMaterialRecordItem {
  /**
   * 素材名称
   */
  adPlatformMaterialName?: string | null;
  /**
   * 点击数
   */
  clickCnt?: number | null;
  /**
   * 平均千次展现费用=总消耗/展示数*1000
   */
  cpmPlatform?: number | null;
  /**
   * 点击率=点击数/展示数*100%
   */
  ctr?: number | null;
  /**
   * 素材id
   */
  materialId?: string | null;
  /**
   * 展示数
   */
  showCnt?: number | null;
  /**
   * 总消耗
   */
  statCost?: number | null;
  /**
   * 当天日期
   */
  thatDayDate?: string | null;
  /**
   * 当日时间戳（yyyy-MM-dd格式的时间戳)
   */
  timestamps?: number | null;
}

export interface CompilePeopleRecord extends OceMaterialRecordItem {
  compileName?: string | null;
}

export interface OceEverydayHoursTotalCostItem {
  /**
   * 激活数
   */
  active?: number | null;
  /**
   * 激活成本=总消耗/激活数
   */
  activeCost?: number | null;
  /**
   * 首次付费数
   */
  activePay?: number | null;
  /**
   * 首次付费成本=消耗/付费次数
   */
  activePayCost?: number | null;
  /**
   * 首次付费率=首次付费数/激活数
   */
  activePayRate?: number | null;
  /**
   * 激活率=激活数/点击数*100%
   */
  activeRate?: number | null;
  /**
   * 巨量广告主每日某小时的总消耗记录id
   */
  advertiserTotalCostHoursHistoryId?: number | null;
  /**
   * 平均点击单价=总花费/点击数
   */
  avgClickCost?: number | null;
  /**
   * 平均千次展现费用=总花费/展示数*1000
   */
  avgShowCost?: number | null;
  /**
   * 点击数
   */
  click?: number | null;
  /**
   * 转化数=付费数*回传率
   */
  convert?: number | null;
  /**
   * 转化成本
   */
  convertCost?: number | null;
  /**
   * 转化率=转化数/点击数*100%
   */
  convertRate?: number | null;
  /**
   * 总消耗
   */
  cost?: number | null;
  /**
   * 创建者
   */
  createBy?: string | null;
  /**
   * 创建时间
   */
  createTime?: string | null;
  /**
   * 点击率=点击数/展示数*100%
   */
  ctr?: number | null;
  /**
   * 付费成本=消耗/付费次数
   */
  gamePayCost?: number | null;
  /**
   * 付费次数
   */
  gamePayCount?: number | null;
  /**
   * 展示数
   */
  show?: number | null;
  /**
   * 当日日期
   */
  thatdayDate?: string | null;
  /**
   * 当日分成金额
   */
  thatdayDividendAmount?: number | null;
  /**
   * 当日某时时间
   */
  thatdayHoursDate?: string | null;
  /**
   * 当日某时时间戳yyyy-mm-dd HH
   */
  thatdayHoursTimestamp?: number | null;
  /**
   * 当日总支付笔数
   */
  thatdayPaidTotalNum?: number | null;
  /**
   * 当日付款人数
   */
  thatdayPaidUseNum?: number | null;
  /**
   * 当日利润金额=当日分成金额-当日消耗/1.05
   */
  thatdayProfitAmount?: number | null;
  /**
   * 当日时间戳
   */
  thatdayTimestamp?: number | null;
  /**
   * 当日总收入
   */
  thatdayTotalAmount?: number | null;
}
